package com.css.dzj.dzjap.modules.enterprise.service;

import com.css.dzj.dzjap.modules.enterprise.entity.ApEnterpriseCreditEntity;
import com.querydsl.core.QueryResults;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface EnterpriseService {

    /**
     * 查询评价单位或建设单位信用信息表
     */
    ApEnterpriseCreditEntity getEnterPrise(String enterpriseCreditId, String enterpriseCredittype);

    /**
     * 添加评价单位或建设单位信用信息表
     */
    String addEnterPrise(ApEnterpriseCreditEntity enterPrise);

    /**
     * 修改评价单位或建设单位信用信息表
     */
    void update(ApEnterpriseCreditEntity enterPrise);

    /**
     * 删除评价单位或建设单位信用信息表
     */
    Boolean deleteEnterPrise(String enterpriseCreditId, String enterpriseCredittype);


    /**
     * 查询评价单位或建设单位信用信息表黑名单
     */
    ApEnterpriseCreditEntity getReEnterPrise(String enterpriseCreditId, String enterpriseCredittype);

    /**
     *分页查询所有评价单位或建设单位信用信息表
     */
    QueryResults<ApEnterpriseCreditEntity> getAllEnterPrise(Pageable pageable, String enterpriseCredittype, HttpServletRequest request);

    /**
     *分页查询所有评价单位或建设单位信用信息表黑名单
     */
    QueryResults<ApEnterpriseCreditEntity> getAllReEnterPrise(Pageable pageable, String enterpriseCredittype,HttpServletRequest request);


    /**
     *多条件分页查询所有评价单位或建设单位信用信息表
     */
    QueryResults<ApEnterpriseCreditEntity> getAllConEnterPrise(Pageable pageable, String enterpriseCredittype, String enterpriseName,String enterpriseScoreNumber,String enterpriseIdNumber,String enterpriseScore,String enterpriseClassification,String organName,HttpServletRequest request);


    /**
     *多条件分页查询所有评价单位或建设单位信用信息表黑名单
     */
    QueryResults<ApEnterpriseCreditEntity> getAllReConEnterPrise(Pageable pageable, String enterpriseCredittype, String enterpriseName,String enterpriseScoreNumber,String enterpriseIdNumber,String enterpriseScore,String enterpriseClassification,HttpServletRequest request);


    /**
     * 通过统一信用代码查询评价单位或建设单位信用信息黑名单
     */
    ApEnterpriseCreditEntity getTyReConEnterPrise( String enterpriseCredittype,String enterpriseIdNumber);


    /**
     *添加评价单位或建设单位信用信息黑名单
     */
    String addReConEnterPrise(ApEnterpriseCreditEntity enterPrise);

    /**
     * 批量删除
     */
    void update(List<ApEnterpriseCreditEntity> list);

    /**
     * 批量修改
     */
    Boolean updateEnterPriseList (List<ApEnterpriseCreditEntity> list);

    /**
     * 评价单位统一信用代码list
     */
    List idNumber();

    /**
     * 评价单位黑白名单表统一信用代码list
     */
    List idHbNumber();
    /**
     * 评价单位白名单统一信用代码list
     */
    List idPJNumber();
}
